Previous: Type Predicates, Up: Predicates [Contents][Index]
This package defines the Common Lisp predicate
cl-equalp.
This function is a more flexible version of
equal. In particular, it compares strings
case-insensitively, and it compares numbers without regard to
type (so that (cl-equalp 3 3.0) is true).
Vectors and conses are compared recursively. All other
objects are compared as if by equal.
This function differs from Common Lisp equalp
in several respects. First, Common Lisp’s
equalp also compares characters
case-insensitively, which would be impractical in this
package since Emacs does not distinguish between integers and
characters. In keeping with the idea that strings are less
vector-like in Emacs Lisp, this package’s
cl-equalp also will not compare strings against
vectors of integers.
Also note that the Common Lisp functions member
and assoc use eql to compare elements,
whereas Emacs Lisp follows the MacLisp tradition and uses
equal for these two functions. The functions
cl-member and cl-assoc use
eql, as in Common Lisp. The standard Emacs Lisp
functions memq and assq use
eq, and the standard memql uses
eql.